In a communication architecture in which communication sessions are initiated and established, a querying node may query a routing engine to provide a list of routing options including available vendors or carriers capable of handling a communication session. With the list of routing options provided by the routing engine, the querying node is able to select a vendor to establish and maintain the communication session.
The routing engine may determine or otherwise obtain a list of available vendors and may manipulate the list to meet pre-defined criteria, such as parameters desired by a customer. Typical routing engines may, for example, order the list of available vendors based on cost or quality. Typical routing engines may create the list of routing options based on static data provisioned to the routing engines. If a later determination shows that a particular vendor is experiencing quality issues, for example, then that vendor may be removed from subsequent lists of routing options without further evaluation or subsequent reconsideration.
Moreover, routing engines may perform an analysis operation in which a desired parameter is compared against a parameter value for each vendor. Such an operation for each vendor in the list of available vendors expends large amounts of time, during which the querying node, as well as the customer, are waiting for the list of routing options.
Thus, there is a need for an improved routing engine that dynamically and efficiently evaluates vendor parameters to create a list of routing options that accurately reflect the vendors' capabilities and that meet the customers' requirements.